package com.bosssoft.g1.dto;

/**
 * @className: UserDTO
 * @description:
 * 解决什么问题：用户管理接口的传送对象 数据来源前端页面或者服务
 * @author: WangXin
 * @date: 2024/5/31下午3:57
 * @since 1.0
 **/
import com.bosssoft.g1.common.data.dto.TenantBaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.validation.annotation.Validated;

import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Class UserDTO
 * @Description 用户管理接口的传送对象 数据来源前端页面或者服务
 * @Author Administrator
 * @Date 2022-9-28  21:15
 * @version 1.0.0
 */
@Data
@AllArgsConstructor
@ApiModel(value = "UserDTO")
@Validated
public class UserDTO extends TenantBaseDTO {
    /**
     * id
     */
    private Long id;
    /**
     * 工号
     */
    @NotNull(message = "code工号不能为空")
    @ApiModelProperty(value="code工号",required = true)
    private String code;

    /**
     * 密码
     */
    @ApiModelProperty(value="password密码",required = true)
    @NotNull(message = "password密码不能为空")
    private String password;

    /**
     * 名字
     */
    @NotNull(message = "name名字不能为空")
    @ApiModelProperty(value="name名字",required = true)
    private String name;

//    /**
//     * 头像
//     */
//    @ApiModelProperty(value="profilePicture头像")
//    private String profilePicture;

    /**
     * 性别
     */
    @NotNull(message = "sex性别不能为空")
    @ApiModelProperty(value="sex性别",required = true)
    private Byte sex;

    /**
     * 生日
     */
    @ApiModelProperty(value="birthday生日")
    private Date birthday;

    /**
     * 电话
     */
    @ApiModelProperty(value="tel电话")
    private String tel;

    /**
     * 邮箱
     */
    @ApiModelProperty(value="email邮箱",required = true)
    @NotNull(message = "email邮箱不能为空")
    private String email;

    /**
     * 其他联系
     */
    @ApiModelProperty(value="other其他联系")
    private String other;

    /**
     * 备注
     */
    @ApiModelProperty(value="remark备注")
    private String remark;
    /**
     * 部门Id
     */
    @ApiModelProperty(value="departmentName部门Name",required = true)
    @NotNull(message = "departmentName部门Name不能为空")
    private Long departmentId;
    /**
     * 职位Id 注意这个不等同于角色实际就是岗位
     */
    @ApiModelProperty(value="positionName职位Name  注意这个不等同于角色实际就是岗位")
    @NotNull(message = "positionName部门Name不能为空")
    private Long positionId;
    /**
     * 角色Id  注意这个不等同于角色实际就是岗位
     */
    @ApiModelProperty(value="roleName职位Name  注意这个不等同于角色实际就是岗位")
    //@NotNull(message = "roleName部门Name不能为空")
    private Long roleId;

    @NotNull
    private List<Long> roleIds;
    /**
     * 公司Id  注意这个不等同于角色实际就是岗位
     */
    private Long companyId;
    /**
     * 部门Name
     */
    private String departmentName;
    /**
     * 职位Id 注意这个不等同于角色实际就是岗位
     */
    private String positionName;
    /**
     * 角色Id  注意这个不等同于角色实际就是岗位
     */
    private String roleName;
    /**
     * 公司Id  注意这个不等同于角色实际就是岗位
     */
    private String companyName;
    /**
     * 公司
     */
    @Transient
    private CompanyDTO companyDTO;
    /**
     * 部门
     */
    @Transient
    private DepartmentDTO departmentDTO;
    /**
     * 角色
     */
    @Transient
    private RoleDTO roleDTO;
    /**
     * 职位
     */
    @Transient
    private PositionDTO positionDTO;
    public UserDTO() {
    }
//    /**
//     * 部门ID
//     */
//    @ApiModelProperty(value="departmentId部门ID",required = true)
//    @NotNull(message = "departmentId部门ID不能为空")
//    private Long departmentId;
//
//    /**
//     * 职位ID  注意这个不等同于角色实际就是岗位
//     */
//    @ApiModelProperty(value="positionId职位ID  注意这个不等同于角色实际就是岗位")
//    private Long positionId;


//    /**
//     * 公司
//     */
//    @Transient
//    private CompanyDTO company;
//    /**
//     * 组织
//     */
//    @Transient
//    private OrganizationDTO organization;
//    /**
//     * 组织
//     */
//    @Transient
//    private TenantDTO tenant;




}






